Some communication systems allow the user of a communication device, such as a personal computer (PC), to communicate across a packet-based computer network, such as the Internet. Such communication systems include voice over Internet protocol (“VoIP”) systems. These systems are beneficial to the user as they are often of significantly lower cost than conventional fixed line or mobile telecommunication networks. This may particularly be the case for long-distance communication. To use a VoIP system, the user installs and executes client software on their device. The client software sets up the VoIP connections as well as providing other functions such as registration and authentication. In addition to voice communication, the client may also set up connections for other communication media such as video calling, instant messaging (“IM”), SMS messaging, file transfer and voicemail.
One type of communication system for packet-based communication uses a peer-to-peer (“P2P”) topology. To enable access to a peer-to-peer system, a user must execute P2P client software provided by a P2P software provider on their computer, and register with the P2P system. When the user registers with the P2P system, the client software is provided with a digital certificate from a server. Once the client software has been provided with the certificate, then calls or other communication connections can subsequently be set up and routed between users of the P2P system without the further use of a server in the set-up. Instead, the client looks up the required IP addresses from information distributed amongst the P2P client software on other end users' computers within the P2P system. That is, the address look-up list is distributed amongst the peers themselves. Once the IP address of a callee's terminal has thus been determined, the caller's P2P client software then exchanges certificates with the callee's P2P client software. The exchange of the digital certificates (or user identity certificates, “UIC”) between users provides proof of the users' identities and that they are suitably authorised and authenticated in the P2P system. Therefore, the presentation of digital certificates provides trust in the identity of the users.
It is therefore a characteristic of peer-to-peer communication that, once registered, the users can set up their own communication routes through the P2P system in an at least partially decentralized manner based on distributed address look-up and/or the exchange of one or more digital certificates, without using a server for those purposes. Further details of an example P2P system can be found in WO 2005/009019.
Alternatively to running the client software on a PC, it is also known to run the client software on a mobile communication device, such as a mobile phone. VoIP or other packet-based communications can also be implemented using non-P2P systems that do use centralized call set-up and/or authentication, e.g. via a server or mobile telecommunications network.
Communication systems employing VoIP, or similar protocols, are subject to many factors which may adversely affect call quality. Thus, when a caller has set up a call with a callee, they might find that the call quality is below their previous expectations. For example, data packets may be lost when communication data is transmitted via the communication network. If the round trip time (RTT) for the data between users is great, then a user may experience delay in receiving information. Call quality may be affected by one or more of bottlenecks in the communication network, amount of traffic in the communication network, bandwidth or data rate limitations imposed by the caller's and/or callee's Internet Service Providers (ISPs), national firewalls, and bandwidth or data rate limitations of the “last mile” of a call-participant's connection to the communication network.
Call quality may also be affected by factors attributable to the device on which a user receives data. For example if the device is a PC or a “smart” mobile telephone, the number of applications running will affect the degree to which the central processing unit (CPU) of the device may process communication data, thereby affecting call quality.
Poor call quality can be frustrating for a user, and can cause him or her to seek alternative communication methods.